import java.util.*;

public class Practice {





//    1.给定1w个数据 统计每个数据出现的次数
    public static Map<Integer,Integer> func1(int[] array) {
        Map<Integer,Integer> map = new HashMap<>();
        for (int x : array) {
            if (map.get(x) == null) {
                map.put(x,1);
            }else {
                int val = map.get(x);
                map.put(x,val+1);
            }
        }
        return map;
    }

//    2.将1w个数据中的数据去重    （直接把数据放到Set中）
    public static Set<Integer> fun2(int[] array) {
        Set<Integer> set = new HashSet<>();
        for (int x:array) {
            set.add(x);
        }
        return set;
    }

//    3.从1w个数据中找出第一个重复的数据   （每次把元素放到Set里 放之前都检查一下 Set中是不是已经有了）
    public static int func3(int[] array) {
        HashSet<Integer> hashSet = new HashSet<>();
        for (int x:array) {
            if (hashSet.contains(x)){
                return x;
            }else {
                hashSet.add(x);
            }
        }
        return -1;//标识
    }





    public static void main(String[] args) {
        int[] array = new int[1_0000];
        Random random = new Random();
        for (int i = 0; i < array.length; i++) {
            array[i] = random.nextInt(10);
        }
        Map<Integer,Integer> map = func1(array);
        System.out.println(map);

        Set<Integer> set = fun2(array);
        System.out.println(set);

        int first = func3(array);
        System.out.println(first);
    }

    
}
